package iedcyt.acute.dataAccess.dao.maesorg;

import iedcyt.acute.dataAccess.domain.maesorg.Datos_Level;
import iedcyt.acute.dataAccess.generic.SpringDao;
import iedcyt.acute.dataAccess.idao.maesorg.IDatos_LevelDao;

import java.util.List;

/**
 * Acceso a datos de la tabla Datos Level
 * @author 53385255R
 *
 */
public class Datos_LevelDao extends SpringDao implements IDatos_LevelDao  {

	/**
	 * Crea la tabla si no existe.
	 * 
	 */
	@Override
	public void create() {
		//comprobamos si la tabla existe y si no la creamos
		try {
			//Se comprueba si existe haciendo una consulta
			_jdbcTemplate.queryForInt("select count(*) from [Datos Level]");
		} catch (Exception e) {
			String sql = "CREATE TABLE [Datos Level] ([Jnl Abbrev] varchar(255), ISSN varchar(255), [Full Jnl Name] varchar(255), [ABV-corregida] varchar(255))";
			_log.info(sql);
			_jdbcTemplate.execute(sql);
		}
		
	}

	/**
	 * Actualiza el ABV-corregida para el JnlAbbrev
	 * @param datos
	 */
	@Override
	public void updateABV(Datos_Level datos) {
		_jdbcTemplate.update("UPDATE [Datos Level] SET [ABV-corregida] = ? WHERE [Jnl Abbrev] = ?",
				new Object[] { datos.get_ABV_Corregida(), datos.get_Jnl_Abbrev() });
		
	}

	/**
	 * Obtiene toda la tabla Datos Level
	 * @return listado de datos level
	 */
	@Override
	public List<Datos_Level> selectAll() {
		return _jdbcTemplate.query("SELECT [Jnl Abbrev], ISSN, [Full Jnl Name], [ABV-corregida] FROM [Datos Level]",
				new Datos_LevelRowMapper());
	}

	/**
	 * Obtiene todos los datos level con issn nulo o vacio
	 * @return listado de datos level
	 */
	@Override
	public List<Datos_Level> selectAll_EmptyABV() {
		return _jdbcTemplate.query("SELECT [Jnl Abbrev], ISSN, [Full Jnl Name], [ABV-corregida] FROM [Datos Level] WHERE [ABV-corregida] = '' OR [ABV-corregida] IS NULL",
				new Datos_LevelRowMapper());
	}

	
}

